package com.itheima.controller;

import com.itheima.contants.Code;
import com.itheima.domain.Book;
import com.itheima.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author 陆小根
 * date: 2022/05/04
 * Description:
 */
@RestController
@RequestMapping("/books")
public class BookController {

  @Autowired
  private BookService bookService;

  @PostMapping
  public Result save(@RequestBody Book book) {
    boolean flag = bookService.save(book);
    return new Result(flag ? Code.SAVE_OK:Code.SAVE_ERR, flag);
  }

  @PutMapping
  public Result update(@RequestBody Book book) {
    boolean flag = bookService.update(book);
    return new Result(flag ? Code.UPDATE_OK:Code.UPDATE_ERR, flag);
  }

  @DeleteMapping("{id}")
  public Result delete(@PathVariable("id") Integer id) {
    boolean flag = bookService.delete(id);
    return new Result(flag ? Code.DELETE_OK:Code.UPDATE_ERR, flag);
  }


  @GetMapping("{id}")
  public Result getById(@PathVariable("id") Integer id) {
    // 手动添加一个错误
//    if (id == 1) {
//      int i = 1 / 0;
//    }
    Book book = bookService.getById(id);
    Integer code = book != null ? Code.GET_OK : Code.GET_ERR;
    String msg = book != null ? "" : "数据查询失败,请重试!";
    return new Result(code, book, msg);
  }

  @GetMapping
  public Result getAll() {

    List<Book> bookList = bookService.getAll();
    Integer code = bookList != null ? Code.GET_OK:Code.GET_ERR;
    String msg = bookList != null ? "":"数据查询失败,请重试";
    return new Result(code, bookList, msg);
  }

}
